<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script type="text/javascript">
        // undifined 即使一个原始数据类型 也是一个原始数据值
        // undegined是全局对象的一个属性：window.undefined
        // console.log(window.undefined); // undefined

        // 不可写  wirteable:false
        // window.undefined = 1;
        // 不可配置 configurable:false
        // delete window.undefined;
        // console.log(window.undefined);
        // 不可枚举 enumerable:false
        // for (let key in window) {
        //     if (key === undefined) {
        //         console.log(true);
        //     }
        // }

        // 更改window属性undefined不可重新定义 直接报错
        // Object.defineProperty(window, 'undefined', {
        //     enumerable: true,
        //     wirteable: true,
        //     configurable: true
        // })

        // function test(){
        //     console.log(123);
        //     // 函数内部没有显示一个返回值时，默认返回undefined
        // }
        // console.log(test()); // undefined

        // 在全局作用域下 声明undefined不起作用 
        // var undefined = 1; 
        // console.log(undefined); // undefined

        // 在局部作用域下 可以声明undefined
        // function show(){
        //     let undefined = "a";
        //     console.log(undefined); // a
        // }
        // show();

        // var c;
        // console.log('c--->'+c);

        // 在window上全局查找属性
        // let cc;
        // if(cc in window){
        //     console.log(true);
        // }else{
        //     console.log(false);
        // }

        // void(0) -> 对0进行求值 void返回值都是undefined

        // void任何数都等于undefined
        console.log(void(100)===undefined); // true
    </script>
</body>

</html>